home *** CD-ROM | disk | FTP | other *** search
- 10 START:fullw 2:clearw 2:nr=24:ni=31:nv=27:option base 1:goto INITIALIZE
- 30 CASE:'change from lower to upper case
- 40 for x=1 to len(cm$):b$=mid$(cm$,x,1)
- 50 if b$>="a" and b$<="z" then mid$(cm$,x,1)=chr$(asc(b$)-32)
- 60 next:return
- 70 TRANS:'print translated text
- 80 gotoxy 5,7:color 2
- 90 for x=1 to len(a$):if mid$(a$,x,1)="=" then mid$(a$,x,1)="!":goto 100
- 95 mid$(a$,x,1)=chr$(asc(mid$(a$,x,1))-1)
- 100 next:? a$:a$="":return
- 110 RENEW:'update screen
- 120 color 1:gosub DESCRIPTION:gosub VECTORS:gosub ITEMS:gosub INVENTORY:return
- 130 DESCRIPTION:'print room name
- 140 gotoxy 9,2:? space$(25):gotoxy 9,2:a$=room$(room-4):gosub 90:return
- 150 VECTORS:'display exits
- 160 gotoxy 9,4:? space$(15)
- 170 for x=0 to 5:vector(x+1)=vecs((room-4)*6-5+x):next
- 180 dr=0:gotoxy 9,4
- 190 for x=1 to 6:if vector(x)>0 then ? mid$(singles$,x,1);" ";:dr=1
- 200 next:if dr=0 then ? "None";
- 210 return
- 220 ITEMS:'display visible items
- 230 color 1:for x=11 to 15:gotoxy 4,x:? space$(14):next
- 240 it=0:y=11:for z=1 to ni
- 250 if abs(iloc(z))=room then gotoxy 4,y:a$=item$(z):gosub 90:it=1:y=y+1
- 260 next:if it=0 then gotoxy 4,11:? "Nothing"
- 270 return
- 280 INVENTORY:'display inventory items
- 290 for x=11 to 15:gotoxy 19,x:? space$(14):next
- 300 i=0:y=11:for z=1 to 5
- 310 if inv(z)<>0 then gotoxy 19,y:a$=item$(inv(z)):gosub 90:i=1:y=y+1
- 320 next:if i=0 then gotoxy 19,11:? "Nothing"
- 330 return
- 340 PARSER:'get command
- 350 if len(a$)>0 then gosub TRANS
- 360 on error goto 2870
- 370 if drgcnt>0 and room<>24 then drgcnt=drgcnt+1:if drgcnt>10 then iloc(13)=0:iloc(28)=-24:drgcnt=0
- 380 color 1:? chr$(7):gotoxy 2,8:input cm$:gosub CASE
- 390 gotoxy 4,8:? space$(31):gotoxy 5,6:? space$(30):gotoxy 5,6:? cm$
- 400 gotoxy 5,7:? space$(30):gotoxy 5,7:color 2
- 405 if cm$="QUIT" then gosub LIVEMOUSE:color 1:end
- 410 if cm$="HELP" then a$="Uzqf!jo!uif!fodszqufe!ijou":h=1:goto PARSER
- 420 if h=1 then h=0:a$=cm$:goto PARSER
- 430 if len(cm$)=1 then 500
- 440 x=instr(cm$," "):if x<3 then ? "HUH?":goto PARSER
- 450 verb$=left$(cm$,3):noun$=mid$(cm$,x+1,3)
- 460 v=instr(vtab$,verb$):if v=79 then v=6
- 465 if v>0 then v=tr(int(v/3)+1):goto 480
- 470 ? "Don't understand that verb!":goto PARSER
- 480 n=instr(ntab$,noun$):if n>0 then n=int(n/3)+1:goto 500
- 490 if room<>14 or v<>8 then ? "Don't understand that noun!":goto PARSER
- 500 turn=turn+1:if int(turn/10)<>turn/10 then 510
- 505 iloc(9)=0*(iloc(9)<0)+11*(iloc(9)=0):if room=11 then gosub ITEMS
- 506 if iloc(9)=-11 then bus=bus+1:if bus>2 then bus=1
- 510 if room=15 then scr=scr+1:if scr=3 then a$="IF!UISPXT!IJT!QJUDIGPSL=":goto DEAD
- 520 if room<>15 then scr=0
- 530 color 2:gotoxy 5,7
- 540 if bturn>0 then bturn=bturn+1:if bturn=5 then bturn=0:room=11:iloc(9)=0:gosub RENEW:a$="Zpv!hfu!upttfe!pgg!uif!cvt":goto PARSER
- 550 if len(cm$)=1 then goto ONELETTER
- 560 on v goto 650,800,970,1200,1250,1430,1460,1510,1610,1640,1720,1740,1780,1840,1880,1960,2050
- 570 ONELETTER:'single letter commands
- 580 v=instr(singles$,cm$):if v=0 then ? "WHAT?":goto PARSER
- 590 if room=24 and iloc(13)=-24 and iloc(14)=-1 then a$="UIF!XJOP!BUUBDLT!ZPV=":goto DEAD
- 610 if vector(v)=0 then ? "You can't go that way!":goto PARSER
- 620 ? "Okay":room=vector(v):gosub RENEW:goto PARSER
- 650 color 2
- 660 if room=25 and wt=0 and iloc(14)=-1 and n=39 then wt=1:a$="Zpv!gjmm!uif!cpuumf":goto PARSER
- 670 if n=8 and op3=1 and (iloc(4)=0 or iloc(4)=-1) then 720
- 680 if n=7 and op1=1 and iloc(n)=0 and room=12 then 720
- 685 if n=2 and op=1 and iloc(n)=0 and iloc(1)=-1 then 720
- 690 if n=14 and iloc(14)=0 and room=24 then 720
- 695 if n=26 and iloc(n)=0 and room=24 then 720
- 697 if n=27 and iloc(n)=0 and iloc(5)=-1 then 720
- 700 if n=29 and iloc(19)=-1 then 720
- 705 if (iloc(30)=room or iloc(30)=-1) and n=23 and iloc(n)=0 then 720
- 707 if n>ni then goto CANT
- 710 if iloc(n)<-4 then ? "You can't get that!":goto PARSER
- 715 if abs(iloc(n))<>room then ? "It's not here!":goto PARSER
- 720 if iloc(n)=-1 then ? "You already have it!":goto PARSER
- 730 i=0:for x=1 to 5:if inv(x)=0 then i=x
- 740 next:if i=0 then ? "You can't carry anymore!":goto PARSER
- 750 if room=27 and n=19 and iloc(18)=-room then a$="TIF!TBX!ZPV=!KBJM!UJNF=":goto DEAD
- 760 if room=28 and iloc(20)=-room then a$="UIF!EPH!DIFXT!ZPV!VQ=":goto DEAD
- 770 ? "Okay":iloc(n)=-1:inv(i)=n:color 1
- 780 gosub ITEMS:gosub INVENTORY:goto PARSER
- 800 color 2
- 810 if n<33 or n>34 then 850
- 820 pay=n-32:if pay>tok then a$="Zpv!epo(u!ibwf!fopvhi":goto PARSER
- 830 tok=tok-pay:if tok>0 then 835
- 831 for x=1 to 5:if inv(x)=8 then inv(x)=0
- 832 next:iloc(8)=0:gosub ITEMS:gosub INVENTORY
- 835 if pay<bus then bturn=4:goto 540
- 840 a$="Plbz-!uif!cvt!mfbwft":bxit=bus(bus):bturn=0:goto PARSER
- 850 if iloc(n)<>-1 then ? "You don't have it!":goto PARSER
- 860 for x=1 to 5:if inv(x)=n then i=x
- 870 next:if room=27 and n=23 then b$="(Pi=!J(mm!hfu!b!qmbuf=(":iloc(23)=0:iloc(18)=0:inv(i)=0:goto 950
- 880 if room=28 and n=26 then b$="Uif!eph!hpccmft!ju!vq":iloc(n)=-4:iloc(24)=-room:iloc(20)=0:inv(i)=0:goto 950
- 890 if n=29 and iloc(14)=-1 then drg=1:b$="///jo!uif!cpuumf":iloc(n)=0:inv(i)=0:goto 950
- 900 if room=24 and iloc(13)=-24 and drg=1 and n=14 then drgcnt=1:iloc(14)=0:inv(i)=0:color 1:b$="Uif!xjop!ublft!ju!cbdl":goto 950
- 910 if room=25 and n=27 then iloc(n)=-4:inv(i)=0:b$="///jo!uif!ejti":goto 950
- 920 if room=25 and bl=0 and n=14 and wt=1 and wn=1 then a$="Uif!qsjftu!cmfttft!uif!xbufs":bl=1:goto PARSER
- 925 cnt=0:for x=1 to ni:if abs(iloc(x))=room then cnt=cnt+1
- 926 next:if cnt=5 then ? "No more room here!":goto PARSER
- 930 inv(i)=0:iloc(n)=room:? "Okay":color 1
- 940 gosub ITEMS:gosub INVENTORY:goto PARSER
- 950 color 1:gosub ITEMS:gosub INVENTORY:a$=b$:gotoxy 5,7:goto PARSER
- 970 if n>ni then 1180
- 990 if n=1 and iloc(n)=-1 and op=1 and iloc(2)=0 then a$="Uifsf(t!b!mfuufs!jotjef":goto PARSER
- 1000 if room=7 and n=4 and op2=0 then a$="Uif!mje!jt!mpdlfe-!ijohfe":goto PARSER
- 1010 if room=12 and n=6 and op1=1 and iloc(7)=0 then a$="Uifsf(t!b!tdsfxesjwfs":goto PARSER
- 1020 if n=4 and (iloc(n)=-1 or iloc(n)=room) and op3=1 and iloc(8)=0 then a$="Uifsf(sf!uplfot!jo!ju":goto PARSER
- 1030 if n<>9 or iloc(n)<>-room then 1065
- 1040 a$="Ju(t!hpjoh!up!":on bus goto 1050,1060
- 1050 a$=a$+"EPXOVOEFS":goto PARSER
- 1060 a$=a$+"EPXOJOHWJMMF":goto PARSER
- 1065 if n=8 and iloc(8)=-1 then ? "You have ";tok;" of them":goto PARSER
- 1070 if room=14 and n=11 then a$="Uifsf(t!b!cvuupo!po!ju":goto PARSER
- 1080 if room=26 and n=17 then a$="CFXBSF!PG!EPH":goto PARSER
- 1090 if room=24 and n=25 and iloc(26)=0 then a$="Uifsf(t!bo!pme!ibncvshfs!jo!ju":goto PARSER
- 1100 if n=5 and iloc(n)=-1 and iloc(27)=0 then a$="Uifsf(t!b!epmmbs!jo!ju":goto PARSER
- 1110 if room=25 and n=16 then a$="If!ibt!b!dpmmfdujpo!ejti":goto PARSER
- 1120 if room=25 and n=15 then a$="Uifsf(t!xbufs!jo!ju":goto PARSER
- 1130 if room=24 and (n=13 or n=28) and iloc(14)=0 then a$="If(t!hpu!b!cpuumf":goto PARSER
- 1140 if n=19 and iloc(n)=-1 then a$="Uifsf(t!tmffqjoh!qjmmt!jo!ju":goto PARSER
- 1150 if n=14 and iloc(n)=-1 and wn=0 then a$="Uifsf(t!xjof!jo!ju":goto PARSER
- 1160 if n=30 and iloc(n)=-1 and iloc(23)=0 then a$="Uifsf(t!dppljft!jo!ju":goto PARSER
- 1170 if n=3 and iloc(n)=-1 then a$="Uif!ujumf!jt;!TUSFFU!DPEFT":goto parser
- 1172 if room=15 and n=12 then a$="XPX=!Ipsot!boe!fwfszuijoh=":goto PARSER
- 1180 ? "You see nothing special":goto PARSER
- 1200 if n=1 and iloc(n)=-1 and op=0 then a$="Zpv!sjq!ju!pqfo":op=1:goto PARSER
- 1210 if room=12 and n=6 and op1=0 then ? "Okay":op1=1:goto PARSER
- 1220 if n=4 and (iloc(n)=-1 or iloc(n)=room) and op2=1 then a$="Pqfojoh///":op3=1:goto PARSER
- 1230 if n=4 and (iloc(n)=-1 or iloc(n)=room) then a$="Zpv!epo(u!ibwf!uif!lfz":goto PARSER
- 1235 goto CANT
- 1250 if n<>2 or iloc(n)<>-1 then 1400
- 1260 clearw 2:gotoxy 17,0:a$="777!Gjsfgbmm!Dpvsu":gosub 90
- 1270 gotoxy 17,1:a$="Epxovoefs-!OK!43576":gosub 90
- 1280 gotoxy 17,2:a$="Kvof!23-!2:97":gosub 90
- 1290 a$="Efbs!ofjhicps-":gosub 90:?:a$="JNBHJOF=!Bozuijoh!zpv!eftjsf!dbo!cf":gosub 90
- 1300 a$="zpvst!xjuijo!35!ipvst=!Uibu(t!sjhiu=":gosub 90
- 1310 a$="POMZ!35!IPVST=!Npofz-!Mpwf-!b!ofx":gosub 90
- 1320 a$="dbsffs/!!Bozuijoh!bu!bmm/!Dbo!zpv":gosub 90
- 1330 a$="usvtu!vt@!Ifz-!xf(wf!cffo!nbljoh":gosub 90
- 1340 a$="hsfbu!efbmt!gps!dfouvsjft/!Up!ublf":gosub 90
- 1350 a$="bewboubhf!pg!uijt!gboubtujd!pggfs-":gosub 90
- 1360 a$="kvtu!tjho!po!uif!epuufe!mjof!)SFE!jol":gosub 90
- 1370 a$="pomz-!qmfbtf*/":gosub 90:?:a$="Ns/!Tdsbudi":gosub 90
- 1380 color 1:gotoxy 10,17:? "Press RETURN";:input a$:gosub SCREEN:gosub RENEW
- 1390 goto PARSER
- 1400 if room=26 and n=17 then a$="CFXBSF!PG!EPH":goto PARSER
- 1410 if n=3 and iloc(n)=-1 then a$="Vtf;!GJOE!tusffu!obnf":goto PARSER
- 1430 if n=2 and iloc(n)=-1 and iloc(31)=-1 then a$="Zpv(wf!usbefe!bxbz!zpvs!tpvm=":goto DEAD
- 1440 goto CANT
- 1460 if (iloc(4)<>-1 and iloc(4)<>room) or iloc(7)<>-1 or n<>32 or op2=1 then goto CANT
- 1470 a$="///Vtjoh!uif!tdsfxesjwfs":op2=1:goto PARSER
- 1510 if room=11 and n=9 and iloc(9)=-room then room=13:bturn=1:gosub RENEW:a$="Plbz":goto PARSER
- 1520 if room<>14 or but=0 then 1580
- 1530 but=0:if n=36 then room=15:goto 1570
- 1540 if n=37 then room=16:goto 1570
- 1550 if n=38 then room=9:goto 1570
- 1555 if n=45 then room=14:goto 1570
- 1560 a$="Opuijoh!ibqqfot":goto PARSER
- 1570 gosub RENEW:a$="Qpppggggg=":goto PARSER
- 1580 if room=26 and n=22 then a$="ZPV(SF!UISPXO!JO!KBJM=":goto DEAD
- 1590 goto CANT
- 1610 if room=13 and n=9 then room=bxit:? "Okay":gosub RENEW:goto PARSER
- 1620 goto CANT
- 1640 if n<>10 or room<>13 then 1680
- 1650 a$="(Gbsf!jt!":on bus goto 1660,1670
- 1660 a$=a$+"2!uplfo(":goto PARSER
- 1670 a$=a$+"3!uplfot(":goto PARSER
- 1680 if room=24 and n=13 and iloc(13)=-24 then a$="If!cvsqt!boe!tnjmft":goto PARSER
- 1690 if room=27 and n=18 and iloc(n)=-27 then a$="(Ipx!bcpvu!b!tobdl@(":goto PARSER
- 1695 if room=25 and n=16 and iloc(27)<>-4 then a$="(Dibsjuz!jt!hppe!gps!uif!tpvm(":goto PARSER
- 1697 if room=25 and n=16 then a$="(Ipx!nbz!J!ifmq!zpv@(":goto PARSER
- 1700 goto CANT
- 1720 if room=14 and n=35 then a$="B!wpjdf!tbzt;!(Foufs!Dpef(":but=1:goto PARSER
- 1730 goto CANT
- 1740 if room=26 and n=22 and iloc(18)=0 then room=27:gosub RENEW:a$="Epps!jt!pqfo/!Zpv!tufq!jotjef":gotoxy 5,7:goto PARSER
- 1750 if room=26 and n=22 then room=27:gosub RENEW:a$="B!mbez!mfut!zpv!jo":gotoxy 5,7:goto PARSER
- 1760 goto CANT
- 1780 if n<>13 or iloc(14)<>-1 or wn=1 then 1810
- 1790 if room=24 and iloc(13)=-24 then a$="UIF!XJOP!BUUBDLT!ZPV=":goto DEAD
- 1800 wn=1:wt=0:a$="Zpv!qpvs!pvu!uif!xjof":goto PARSER
- 1810 if room=15 and iloc(14)=-1 and bl=1 and n=39 then a$="IF!NFMUT!BXBZ!UP!OPUIJOH":goto WINNER
- 1820 if room=15 and iloc(14)=-1 and n=39 then a$="IF!UISPXT!B!QJUDIGPSL=":goto DEAD
- 1830 goto CANT
- 1840 if room<16 or room>24 and n=21 and iloc(n)=-1 then a$="Xiffffffff=":goto PARSER
- 1850 if room>15 and room<25 and n=21 and iloc(n)=-1 then room=9:gosub RENEW:a$="Pgg!zpv!hp=":goto PARSER
- 1860 goto CANT
- 1880 if n<>40 then goto CANT
- 1890 ? "Saving...":open "O",#1,"SCRATCH.DAT"
- 1900 for x=1 to ni:write #1,iloc(x):next
- 1910 for x=1 to 5:write #1,inv(x):next
- 1920 write #1,room,op,op1,op2,op3,turn,bturn,bus,tok,bxit,but
- 1930 write #1,drg,drgcnt,wat,bl,wn,scr:goto 2020
- 1960 if n<>40 then goto CANT
- 1970 on error goto 2030:? "Loading...":open "I",#1,"SCRATCH.DAT"
- 1980 for x=1 to ni:input #1,iloc(x):next
- 1990 for x=1 to 5:input #1,inv(x):next
- 2000 input #1,room,op,op1,op2,op3,turn,bturn,bus,tok,bxit,but
- 2010 input #1,drg,drgcnt,wat,bl,wn,scr:gosub RENEW
- 2020 close:gotoxy 5,7:color 2:? "Done! ":goto PARSER
- 2030 a$="OP!HBNF!TBWFE=":resume PARSER
- 2050 if n<41 or n>44 or iloc(3)<>-1 then goto CANT
- 2060 a$="Uif!dpef!jt;!":if n=41 then a$=a$+"GBM"
- 2070 if n=42 then a$=a$+"BJO"
- 2080 if n=43 then a$=a$+"WJM"
- 2085 if n=44 then a$=a$+"UPO"
- 2090 goto PARSER
- 2100 CANT:? "You can't do that!":goto PARSER
- 2110 DEAD:'Player blew it!
- 2120 clearw 2:gotoxy 18-len(a$)/2,5:gosub 90
- 2130 gotoxy 6,8:? "This adventure is over!"
- 2140 gotoxy 6,12:? "You lasted ";turn;" turns"
- 2150 color 1:gotoxy 8,17:? "Play again";:input a$
- 2160 if left$(a$,1)="Y" or left$(a$,1)="y" then gosub LIVEMOUSE:goto 2240
- 2170 if left$(a$,1)="N" or left$(a$,1)="n" then gosub LIVEMOUSE:end
- 2180 goto 2150
- 2190 WINNER:'Mission completed!
- 2200 clearw 2:gotoxy 18-len(a$)/2,5:gosub 90
- 2210 gotoxy 12,8:? "YOU WIN!!":gotoxy 6,12:? "It took you ";turn;" turns":goto 2150
- 2220 INITIALIZE:'set up game
- 2230 if peek(systab)=1 then gotoxy 10,10:? "You must have a color monitor!":for x=1 to 5000:next:end
- 2235 dim vector(6),vecs(nr*6),item$(ni),inv(5),room$(nr),iloc(ni+12),tr(nv)
- 2236 dim v%(4),ml%(50):av=varptr(v%(1)):strt=varptr(ml%(1))
- 2237 dim bus(2): bus(1)=14:bus(2)=16
- 2240 poke contrl,32:poke contrl+2,0:poke contrl+6,1:poke intin,2:vdisys(1)
- 2250 restore 2360:fullw 2:clearw 2:if peek(systab)=2 then linef 302,0,302,168
- 2260 color 2,1:fill 150,80
- 2270 ef=16:gosub TEXTEFFECT:gotoxy 5,5:? "M I S T E R S C R A T C H"
- 2280 ef=4:gosub TEXTEFFECT:color 3:gotoxy 9,7:? " A Devilish Tale"
- 2290 ef=1:gosub TEXTEFFECT:color 4:if peek(systab)=2 then color 2
- 2300 gotoxy 15,9:? "by"
- 2310 gotoxy 10,10:? "Clayton Walnum":ef=0:gosub TEXTEFFECT
- 2340 for x=1 to 5:inv(x)=0:next:inv(1)=5:inv(2)=31
- 2350 for x=1 to nr*6:read vecs(x):next
- 2360 data 6,7,8,0,0,12,0,5,0,0,0,0,5,0,0,0,0,0,9,10,0,5,0,0
- 2370 data 0,8,0,0,0,0,8,11,0,0,0,0,10,0,0,0,0,0,0,0,0,0,5,0
- 2380 data 0,0,0,0,0,0,14,14,14,14,14,14,0,0,0,0,0,0,22,17,22,16,0,0
- 2390 data 16,18,24,0,0,0,17,19,25,0,0,0,18,20,26,0,0,0,19,21,0,0,0,0
- 2400 data 20,22,22,21,0,0,23,21,21,22,0,0,22,23,23,24,0,0,0,0,23,17,0,0
- 2410 data 0,0,0,18,0,0,0,0,0,19,0,0,0,0,28,26,0,0,0,0,0,27,0,0
- 2420 for x=1 to ni:read item$(x),iloc(x):next
- 2430 data Fowfmpqf,5,Mfuufs,0,Cppl,6,Kfxfmsz!cpy,7,Xbmmfu,-1,Uppm!lju,-12
- 2440 data Tdsfxesjwfs,0,Uplfot,0,Cvt,-11,Esjwfs,-13,Ufsnjobm,-14
- 2450 data Ns/Tdsbudi,-15,Xjop,-24,Cpuumf,0,Gpou,-25,Qsjftu,-25
- 2460 data Tjho,-26,Mbez,-27,Kbs!pg!qjmmt,27,Tobsmjoh!eph,-28,Cjdzdmf,28
- 2470 data Gspou!epps,-26,Dppljft,0,Ibqqz!eph,0,Hbscbhf!dbo,-24,Ibncvshfs,0
- 2480 data Epmmbs,0,Tmffqjoh!xjop,0,Qjmm,0,Tipqqjoh!cbh,5,Sfe!qfo,-1
- 2490 vtab$="GETTAKDROGIVLOOEXAOPEREASIGUNSREMGO ENTEXILEATALSPEPRE"
- 2500 vtab$=vtab$+"PUSKNOPOUEMPRIDSAVLOAFINPAY"
- 2510 for x=1 to nv:read tr(x):next
- 2520 data 1,1,2,2,3,3,4,5,6,7,7,8,8,9,9,10,10,11,11,12,13,13,14,15,16,17,18
- 2530 for x=1 to 11:read room$(x):next
- 2540 for x=12 to 19:room$(x)="Po!Epxojohwjmmf!Tu/":next
- 2550 for x=20 to nr:read room$(x):next
- 2560 data Jo!zpvs!mjwjoh!sppn,Jo!zpvs!efo,Jo!zpvs!cfesppn,Po!Nbjo!Tusffu
- 2570 data Po!Nbjo!Tusffu,Po!Nbjo!Tusffu,Bu!uif!cvt!tupq,Jo!uif!dfmmbs
- 2580 data Po!b!cvt,Po!Ipuufsupo!Tusffu,Jo!b!sfe!pggjdf
- 2590 data Jo!bo!bmmfz,Jo!b!divsdi,Jo!tpnfpof(t!gspou!zbse
- 2600 data Jo!b!mjwjoh!sppn,Jo!tpnfpof(t!cbdl!zbse
- 2610 ntab$="ENVLETBOOBOXWALKITSCRTOKBUSDRITERMR.WINBOTFONPRISIGLADJARDOGBIC"
- 2620 ntab$=ntab$+"DOOCOOHAPGARHAMDOLSLEPILBAGPEN"
- 2630 ntab$=ntab$+"HINONETWOBUTFALVILAINWATGAMFIRMAIDOWHOTTON"
- 2640 singles$="NSEWUD"
- 2645 for i=0 to 96 step 2:read c:poke strt+i,c:next
- 2646 data &h3f3c,&h22,&h4e4e,&h548f,&h2a6f,&h6,&h2a55,&h2040,&h41e8,&h10
- 2647 data &h2a90,&h2f3c,0,&h34,&h2f3c,0,&h36,&h3f3c,0,&h3f3c,0,&h4e4e
- 2648 data &hdffc,0,&hc,&h4e75,&h4e75,0,0,0,0,&h2a6f,&h6,&h2a55,&h2f15
- 2649 data &h2f3c,0,&h5e,&h3f3c,&h1,&h3f3c,0,&h4e4e,&hdffc,0,&hc,&h4e75,&h3,0
- 2650 room=5:op=0:op1=0:op2=0:op3=0:turn=0:bturn=0:bus=1:tok=4:bxit=11:but=0
- 2660 drg=0:drgcnt=0:wat=0:bl=0:wn=0:scr=0
- 2680 gosub SCREEN:gosub DEADMOUSE:gosub RENEW:goto PARSER
- 2690 SCREEN:'draw display
- 2700 poke contrl,32:poke contrl+2,0:poke contrl+6,1:poke intin,2:vdisys(1)
- 2705 restore 2730:clearw 2:color 2,4,2
- 2710 read a,b,c,d:if a=-1 then 2790
- 2720 linef a,b,c,d:goto 2710
- 2730 data 0,0,303,0,0,0,0,166,303,0,303,166,0,166,303,166
- 2740 data 92,0,92,10,218,0,218,10,10,10,293,10
- 2750 data 10,10,10,156,293,10,293,156,10,156,293,156
- 2760 data 15,14,288,14,15,15,15,151,288,15,288,151,15,151,288,151
- 2770 data 15,32,288,32,15,50,288,50,15,86,288,86,151,86,151,151
- 2780 data -1,-1,-1,-1
- 2790 fill 150,161:color 1,8,6,1,1:fill 150,5:fill 150,12
- 2795 if peek(systab)=2 then color 2
- 2800 gotoxy 11,0:? "MISTER SCRATCH":color 1
- 2810 gotoxy 2,2:? "PLACE:":gotoxy 2,4:? "EXITS:"
- 2820 gotoxy 2,10:? "YOU SEE:":gotoxy 17,10:? "YOU HAVE:"
- 2830 return
- 2840 TEXTEFFECT:'set effects for text
- 2850 poke contrl,106:poke contrl+2,0:poke contrl+6,1
- 2860 poke intin,ef:vdisys(1):return
- 2870 gotoxy 5,7:? "ERROR ";err;" AT LINE ";erl:resume PARSER
- 2880 DEADMOUSE:'get rid of the critter
- 2890 call strt(av):return
- 2900 LIVEMOUSE:'rodent reincarnation
- 2910 strt1=strt+62:call strt1(av):return
- SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS